home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 3 / Light ROM 3 - Disc 2.iso / programs / pc / demos / viewspac / setup.mst < prev    next >
Text File  |  1993-11-18  |  7KB  |  273 lines

  1. '**************************************************************************
  2. '*                       viewSpace 1.0 Setup
  3. '**************************************************************************
  4.  
  5. '***'$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST APPHELP       = 900
  18. CONST BADPATH       = 6400
  19. CONST SMALLWIN      = 2200
  20. CONST RESTART       = 2600
  21. CONST RESTARTII     = 2700
  22.  
  23. ''Bitmap ID
  24. CONST LOGO = 1
  25.  
  26. GLOBAL SizeReq&  '' Total Disk Size required for installation
  27.  
  28. ''File Types
  29. GLOBAL WinDir$
  30. GLOBAL WinSysDir$
  31. GLOBAL WINDRIVE$    ''Windows Drive Letter.
  32. GLOBAL DEST$        ''Default destination directory.
  33. GLOBAL HasMath%     ''has math coprocessor
  34. GLOBAL HasEMU%      ''math emulator already installed    
  35.  
  36. DECLARE SUB Install
  37. DECLARE SUB EMUInstall
  38. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  39. DECLARE SUB Reboot LIB "iniupd.dll"
  40. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  41.  
  42.  
  43. INIT:
  44.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  45.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  46.  
  47.     SetBitmap CUIDLL$, LOGO
  48.     SetTitle "Caligari viewSpace 1.0"
  49.  
  50.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  51.     IF szInf$ = "" THEN
  52.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  53.     END IF
  54.     ReadInfFile szInf$
  55.  
  56.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  57.     DEST$ = WINDRIVE$ + ":\viewspac"
  58.  
  59. WELCOME:
  60.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  61.     IF sz$ = "CONTINUE" THEN
  62.         UIPop 1
  63.     ELSE
  64.         GOSUB ASKQUIT
  65.         GOTO WELCOME
  66.     END IF
  67.  
  68.  
  69. GETPATH:
  70.     SetSymbolValue "EditTextIn", DEST$
  71.     SetSymbolValue "EditFocus", "END"
  72. GETPATHL1:
  73.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  74.     DEST$ = GetSymbolValue("EditTextOut")
  75.  
  76.     IF sz$ = "CONTINUE" THEN
  77.         IF IsDirWritable(DEST$) = 0 THEN
  78.             GOSUB BADPATH
  79.             GOTO GETPATHL1
  80.         END IF
  81.         UIPop 1
  82.     ELSEIF sz$ = "REACTIVATE" THEN
  83.         GOTO GETPATHL1
  84.     ELSEIF sz$ = "BACK" THEN
  85.         UIPop 1
  86.         GOTO WELCOME
  87.     ELSE
  88.         GOSUB ASKQUIT
  89.         GOTO GETPATH
  90.     END IF
  91.  
  92.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  93.     WinDir$ = GetWindowsDir()
  94.     WinSysDir$ = GetWindowsSysDir()
  95.     HasMath% = Has87MathChip()
  96.  
  97.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  98.     IF HasMath% < 1 THEN
  99.         AddSectionFilesToCopyList "Emulator", SrcDir$, WinSysDir$
  100.     END IF
  101.  
  102. ''  Check windrive diskspace
  103.     SizeReq& = GetCopyListCost ("","", "")
  104.     IF SizeReq& <> 0 THEN
  105.     GOSUB SMALLWIN
  106.     END
  107.     END IF
  108.  
  109.  
  110.     Install
  111.  
  112. '' If no emulator installed then no need to restart windows
  113.    IF HasMath%  > 0 THEN
  114.         GOTO QUIT
  115.    ENDIF
  116. '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically
  117. '' else, it gives the user the choice
  118.     RESTRT% = RestartListEmpty ()
  119.     Exe$ = DEST$ + "\_msrstrt.exe"
  120.     Batch$ = DEST$ + "\_mssetup.bat"
  121.     empty$ = ""
  122. RESTART:
  123.     IF RESTRT% = 0 THEN
  124.        sz$ = UIStartDlg(cuidll$, RESTART, "FInfo0DlgProc", 0, "")
  125.        IF sz$ = "REACTIVATE" THEN
  126.       GOTO RESTART
  127.        ENDIF
  128.        I% = ExitExecRestart ()
  129.        RemoveFile Exe$, cmoForce
  130.        RemoveFile Batch$, cmoForce
  131.        END
  132.     ELSE
  133.        sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  134.        IF sz$ = "CONTINUE" THEN
  135.       I% = ExitWindowsExec (Exe$, empty$)
  136.       IF I% = 0 THEN
  137.          GOTO RESTART
  138.       ELSE
  139.          END
  140.      ENDIF
  141.        ELSEIF sz$ = "EXIT" THEN
  142.       UIPopAll
  143.       END
  144.        ELSEIF sz$ = "REACTIVATE" THEN
  145.       GOTO RESTART
  146.        ELSE
  147.       UIPop 1
  148.        END IF
  149.     END IF
  150.  
  151.  
  152. QUIT:
  153.     ON ERROR GOTO ERRQUIT
  154.  
  155.     IF ERR = 0 THEN
  156.     dlg% = EXITSUCCESS
  157.     ELSEIF ERR = STFQUIT THEN
  158.     dlg% = EXITQUIT
  159.     ELSE
  160.     dlg% = EXITFAILURE
  161.     END IF
  162. QUITL1:
  163.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  164.     IF sz$ = "REACTIVATE" THEN
  165.     GOTO QUITL1
  166.     END IF
  167.     UIPop 1
  168.     END
  169.  
  170. ERRQUIT:
  171.     i% = DoMsgBox("An installation problem occured, call the product support service", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  172.     END
  173.  
  174. ASKQUIT:
  175.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  176.  
  177.     IF sz$ = "EXIT" THEN
  178.     UIPopAll
  179. ''        ERROR STFQUIT
  180.     END
  181.     ELSEIF sz$ = "REACTIVATE" THEN
  182.     GOTO ASKQUIT
  183.     ELSE
  184.     UIPop 1
  185.     END IF
  186.     RETURN
  187.  
  188. SMALLWIN:
  189.     sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
  190.     IF sz$ = "REACTIVATE" THEN
  191.     GOTO SMALLWIN
  192.     END IF
  193.     UIPop 1
  194.     RETURN
  195.  
  196.  
  197. BADPATH:
  198.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  199.     IF sz$ = "REACTIVATE" THEN
  200.         GOTO BADPATH
  201.     END IF
  202.     UIPop 1
  203.     RETURN
  204.  
  205.  
  206. '**
  207. '** Purpose:
  208. '**     performs all installation operations.
  209. '** Arguments:
  210. '**     none.
  211. '** Returns:
  212. '**     none.
  213. '*************************************************************************
  214. SUB Install STATIC
  215.  
  216.     CreateDir DEST$, cmoNone
  217.  
  218.     CopyFilesInCopyList
  219.  
  220.     IF HasMath% < 1 THEN
  221.         EMUInstall
  222.     END IF
  223.  
  224.     CreateIniKeyValue "WIN.INI", "Extensions", "tsd", DEST$ + "\VIEWSPAC.EXE ^.tsd", cmoOverwrite
  225.     CreateProgmanGroup "viewSpace", "", cmoNone
  226.     ShowProgmanGroup  "viewSpace", 1, cmoNone
  227.     CreateProgmanItem "viewSpace", "viewSpace", MakePath(DEST$,"viewspac.exe"), "", cmoOverwrite
  228.     CreateProgmanItem "viewSpace", "Self-running Demo 1024x768", MakePath(DEST$,"dems1024.tsd"), "", cmoOverwrite
  229.     CreateProgmanItem "viewSpace", "Self-running Demo 800x600", MakePath(DEST$,"dems800.tsd"), "", cmoOverwrite
  230.  
  231. END SUB
  232.  
  233. '**
  234. '** Purpose:
  235. '**     install math emulator in system.ini file
  236. '** Arguments:
  237. '**     none.
  238. '** Returns:
  239. '**     none.
  240. '*************************************************************************
  241. SUB EMUInstall STATIC
  242.  
  243.     HasEMU% = DoesIniKeyExist("system.ini", "386Enh", "wemu")
  244.     IF HasEMU% < 1 THEN
  245.         CreateIniKeyValue WinDir$ + "system.ini", "386Enh", "wemu", "installed", cmoOverwrite
  246.         CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "wemu387.386", cmoOverwrite
  247.     END IF
  248.  
  249. END SUB
  250.  
  251.  
  252. '**
  253. '** Purpose:
  254. '**     Appends a file name to the end of a directory path,
  255. '**     inserting a backslash character as needed.
  256. '** Arguments:
  257. '**     szDir$  - full directory path (with optional ending "\")
  258. '**     szFile$ - filename to append to directory
  259. '** Returns:
  260. '**     Resulting fully qualified path name.
  261. '*************************************************************************
  262. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  263.     IF szDir$ = "" THEN
  264.         MakePath = szFile$
  265.     ELSEIF szFile$ = "" THEN
  266.         MakePath = szDir$
  267.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  268.         MakePath = szDir$ + szFile$
  269.     ELSE
  270.         MakePath = szDir$ + "\" + szFile$
  271.     END IF
  272. END FUNCTION
  273.